package cn.edu.hqu.cst.android.sensor;

import android.content.Context;
import android.content.Intent;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;

public class AccelSimulator extends AppCompatActivity implements SensorEventListener {
    // 定义模拟器的Sensor管理器
    private SensorManager mSensorManager;
    // 定义界面上的文本框组件
    TextView show;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_accel_simulator);
        //设置返回
        Button back = findViewById(R.id.backpage_accel);
        back.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent i = new Intent(AccelSimulator.this,MainActivity.class);
                startActivity(i);
            }
        });
        // 获取程序界面的文本框组件
        show = findViewById(R.id.accel_show);
        // 获取传感器模拟器的传感器管理服务
        mSensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);
        mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
    }

    protected void onResume(){
        super.onResume();
        // 为系统的加速度传感器注册监听器
        mSensorManager.registerListener(this,
                mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
                SensorManager.SENSOR_DELAY_GAME);
    }

    protected void onStop(){
        // 取消注册
        mSensorManager.unregisterListener(this);
        super.onStop();
    }
    // 以下是实现SensorEventListener接口必须实现的方法
    // 当传感器的值发生改变时回调该方法
    @Override
    public void onSensorChanged(SensorEvent event) {
        float[] values = event.values;
        StringBuilder sb = new StringBuilder();
        sb.append("X方向上的加速度：");
        sb.append(values[0]);
        sb.append("\n");
        sb.append("\nY方向上的加速度：");
        sb.append(values[1]);
        sb.append("\n");
        sb.append("\nZ方向上的加速度：");
        sb.append(values[2]);
        sb.append("\n");
        show.setText(sb.toString());
    }

    @Override
    public void onAccuracyChanged(Sensor sensor, int accuracy) {

    }
}
